Fix/retire kitty ctrlv map xwayland#3
Merged
Conversation
…etection Under XWayland kitty, `kitten @ ls` reports is_focused=false for every OS window and empty foreground_processes, so kitty-paste-router.sh's focused_window_is_tmux() can never succeed. Every Ctrl+V took the slow fallthrough (background launch, seconds late under load) and the late second fire landed outside the daemon's 2.5s dedup window — journal shows identical 162-byte text pastes 4s apart (pane %23, 15:14:50 + 15:14:54). Fix: kitty must not bind ctrl+v at all. tmux's own `bind -n C-v` is the single handler (~5ms, pane id from the pressing client — also kills the wrong-pane hazard of the router's target-less `tmux display-message`). Non-tmux kitty windows: raw 0x16 reaches Claude Code, which reads the clipboard itself via the wl-paste shim; plain shells use ctrl+shift+v. - keybindings.canonical: kitty ctrl+v -> UNBOUND (new keyword) - flashpaste-keybindings-check.sh: support UNBOUND (binding must not exist) - kitty-paste-router.sh: retired-status header + clip-pipeline-log tracing (it was the only paste path with zero logging) - tests/keybindings-check.test.sh: cover UNBOUND pass/violation + keep positive-rule and literal-+ coverage via fixture canonicals
shellcheck -S warning (CI gate) parses $key_re[[:space:]] as an array expansion and errors. Introduced with the checker in PR #1; this was the shellcheck regression that turned main's Lint job red. Braces quiet it with no behavior change (tests 6/6, live check consistent).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
What changed
How tested
Checklist
Lintworkflowcargo build --release --locked --manifest-path rs/Cargo.tomlpasses (if any Rust changed)cargo fmt --manifest-path rs/Cargo.toml --all --checkpasses (if any Rust changed)cargo clippy --release --locked --manifest-path rs/Cargo.toml -- -D warningspasses (if any Rust changed)flashpaste-doctorruns clean against the changesvX.Ybump: tag pushed in the same turn (see AGENTS.md)CHANGELOG.mdupdated under## [Unreleased]docs/updatedType of change